Driven by increasing usage of a variety of network applications, such as those involving the Internet, computer networks are of increasing interest. In order to couple portions of a network together or to couple networks together, network processors residing in switches, routers, and/or other components are typically used. In order to adequately control the traffic through the network, the network processor must classify packets and perform other functions that use tables, such as lookup tables. In order to use these tables, the properties of the tables are managed. For example, size, the data structure and corresponding speed, the location (memory selected), the insertion of entries in the tables, and certain relationships between tables are controlled. Thus, a network administrator typically desires to manage the properties of the tables being used by the network processors.
FIG. 1 depicts a block diagram of a conventional system 10 for managing tables of network processors. The system 10 includes a conventional host processor 12 used by a network administrator and conventional network processors 30, 40, and 50. The conventional host processor 10 typically includes a table management application 22 that is developed at least in part by the owner of the conventional system 10. The network administrator uses the conventional table management application 22 to configure, update, and otherwise manage the tables, such as lookup tables, of the conventional network processors 30, 40, and 50 in the conventional system 10.
The conventional network processors 30, 40, and 50 are typically purchased by the owner of the conventional system 10. The conventional network processors 30, 40, and 50 each includes conventional software and/or firmware 32, 42, and 52, respectively, that are used in managing the tables (not explicitly shown). In addition, the conventional software and/or firmware 32, 42, and 52 may be different. For example, the conventional network processors 30, 40, and 50 may include different versions of a particular model of network processor from a particular vendor and/or other model(s) of network processor that may be from other vendors. Thus, the conventional network processors 30 and 40 are depicted as having software and/or firmware 32 and 42 that are different versions of a Model X network processor, while the software and/or firmware 52 of the conventional network processor 50 is a Model Y network processor. Because the conventional network processors 30, 40, and 50 are designed to communicate with different control applications, each conventional network processor 30, 40, and 50 utilizes conventional application program interfaces (APIs) 12, 14, and 16, respectively, that are specific to the particular software and/or firmware 32, 42, and 52, respectively.
The conventional table management application 22 is used to manage the tables used by the conventional network processors 30, 40, and 50, respectively. The conventional table management application 22 thus includes a corresponding set of conventional behaviors 24, 26, and 28 for each set of the conventional APIs 12, 14, and 16, respectively. The conventional APIs 12, 14, and 16 are designed to communicate with the conventional behaviors 32, 42, and 52, respectively. The conventional APIs 12, 14, and 16 are also used to control the corresponding software and/or firmware 32, 42, and 52, respectively. Thus, using the conventional behaviors 24, 26, and 28 corresponding to the conventional APIs 12, 14, and 16, respectively, the conventional table management application 22 can control the tables for the conventional network processors 30, 40, and 50, respectively.
Although the conventional system 10 functions, one of ordinary skill in the art will readily recognize that the conventional system is difficult to scale and may have high maintenance costs. The conventional network processors 30, 40, and 50 are typically heterogeneous in nature. Because the conventional network processors 30, 40, and 50 are heterogeneous, the conventional network processors may include different versions of a particular model of network processor and/or different models of network processor. In addition, the way in which particular tables are used in each conventional network processor 30, 40, and 50 may differ widely. Thus, the software and/or firmware 32, 42, and 52 of different network processors typically differ. The APIs 12, 14, and 16 thus also differ. Consequently, the corresponding behaviors 24, 26, and 28 of the conventional table management application 22 are distinct. One of ordinary skill in the art will also readily recognize that the conventional system 10 may actually include a large number of network processors. Consequently, the number of conventional APIs 12, 14, and 16 with which the conventional table management application 22 must be compatible may be large. As a result, the number of distinct conventional behaviors used by the conventional host processor 20 and developed by the owner of the conventional system 10, such as the conventional behaviors 24, 26, and 28, may be large. As a result, the conventional table management application 22 may be complex and include an amalgamation of a variety of behaviors, one for each model and/or version of conventional network processor. It may thus be difficult to incorporate new network processors, which may have software and/or firmware and thus APIs not previously supported. The conventional system 10 is, therefore, difficult to scale. Because of difficulties in incorporating new software and/or firmware and their corresponding APIs, evolving the conventional table management application 22 and, therefore, the conventional system 10 to utilize improved network processors may be problematic. Furthermore, because supporting a variety of conventional behaviors 24, 26, and 28 makes the conventional table management application 22 more complex, the conventional system 10 may be subject to higher maintenance costs.
Accordingly, what is needed is a system and method for allowing a host to manage tables used by a network processor in a scalable, flexible manner. The present invention addresses such a need.